home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C64'er
/
C64'er.iso
/
87xx
/
8702a.d64
/
gdm v1.0
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
7KB
|
246 lines
1 A=A+1:IF A=1 THEN LOAD"GDM.OBJ",8,1
2 B=B+1:IF B=1 THEN LOAD"GDM.CODES",8,1
3 :
14 REM ------------------------------
15 REM - GDM GEOS DISKETTEN MONITOR -
45 REM - (C) MARKT & TECHNIK -
50 REM ------------------------------
51 :
55 :
60 HE$="-0123456789[193][194][195][196][197][198]"
65 H2$="-0123456789ABCDEF"
75 :
85 CLOSE 15:OPEN 15,8,15,"I":CLOSE 2:OPEN 2,8,2,"#"
90 POKE 53280,0:POKE 53281,0:POKE 53272,23:POKE 657,128:POKE 646,1
91 POKE 53248,32:POKE 53249,219:POKE 53288,1:POKE 53269,1:POKE 52264,0
92 POKE 2040,13
95 :
100 REM --- HAUPTMENUE ---
105 PRINT"[147][199][196][205][160][199]EOS [196]ISKMONITOR [214]2 ";:POKE 53269,1
106 PRINT" BY [212]HORSTEN [208]ETROWSKI (C) 64'ER"
107 PRINT"[184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]";
115 PRINT" F1[146] [204]ESEN F2[146] [206]AECHSTER F3[146] SCHREIBEN"
120 PRINT:PRINT" F4[146] [194]YTE EDIT F5[146] [196]IRECTORY F6[146] [210]ESET"
125 PRINT:PRINT" F7[146] [197]NDE F8[146] [194]LOCK EDIT _[146] [196]UMP H[146] [200][197][216]-[197]DIT";
126 PRINT"[162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]";
130 PRINT" [146][211]PUR [ ] [146] [211]EKTOR [ ] [146]";
131 PRINT"[184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]";
135 PRINT"[184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][145][157] [146]";
140 PRINT "[194]YTE# :[196][197][218] # [200][197][216] $ [194][201][206] % "
141 PRINT"[176][192][192][192][174] 76543210"
142 PRINT"[221] [221] [211]PRITE"
143 PRINT"[221] [221]"
144 PRINT"[221] [221]"
145 PRINT"[173][192][192][192][189]";
146 GOSUB 575
150 :
155 :
160 REM --- AUSWAHL MENUE ---
165 MD$="> [215][193][201][212][201][206][199][160]<":GOSUB 2000
166 GET KEY$:IF KEY$="" THEN 165
170 IF KEY$="[133]" THEN GOSUB 590
175 IF KEY$="[135]" THEN PRINT"[147]":GOSUB 460:GOTO 105
176 IF KEY$="H" THEN 1000
180 IF KEY$="[140]" THEN GOSUB 575:GOTO 225
185 IF KEY$="[139]" THEN 85
190 IF KEY$="[134]" THEN GOSUB 650
195 IF KEY$="[136]" THEN CLOSE 2:CLOSE 15:END
200 IF KEY$="[137]" THEN T=PEEK(49664):S=PEEK(49665):KEY$="[133]":GOTO 170
205 IF KEY$="[138]" THEN GOSUB 630
210 IF KEY$="_" THEN GOSUB 340:GOTO 105
215 GOTO 165
220 :
225 REM --- EDITIEREN ---
230 CR=1464+NR:RO=CR
235 X=29:Y=0:GOSUB 675:PRINT"> [197][196][201][212][201][206][199] <"
240 IF NR>255 OR NR<0 THEN NR=NO:CR=RO
245 GOSUB 605
250 POKE RO,PEEK(RO) AND 127
255 POKE CR,PEEK(CR) OR 128
260 RO=CR:NO=NR
265 GET MO$:IF MO$="" THEN 265
270 MO=ASC(MO$):PO=MO
275 IF MO=29 THEN NR=NR+1:CR=CR+1:GOTO 240
280 IF MO=17 THEN NR=NR+40:CR=CR+40:GOTO 240
285 IF MO=138 THEN GOSUB 630:GOTO 240
290 IF MO=145 THEN NR=NR-40:CR=CR-40:GOTO 240
295 IF MO=157 THEN NR=NR-1:CR=CR-1:GOTO 240
300 IF MO=13 THEN POKE RO,PEEK(RO) AND 127:GOTO 150
305 IF MO>=65 AND MO<=90 THEN PO=PO+32:GOTO 315
310 IF MO>=193 AND MO<=218 THEN PO=PO-128
315 Y=INT(NR/40):X=NR-Y*40:Y=Y+11:GOSUB 675:PRINT CHR$(MO);
320 POKE 49664+NR,PO
325 IF NR<255 THEN NR=NR+1:CR=CR+1
330 GOTO 240
335 :
340 REM --- HARDCOPY ---
341 PRINT"[147]":X=0:Y=12:GOSUB 675:PRINT"[196]RUCKER-[196]UMP ...":POKE 53269,0
342 PRINT TAB(10)"([196])EZIMAL"
343 PRINT TAB(10)"([200])EXADEZIMAL"
344 PRINT TAB(10)"([211])[212][207][208][160]!"
345 GET MO$:IF MO$="" THEN 345
346 IF MO$="S" THEN RETURN
347 IF MO$="H" OR MO$="D" THEN 353
348 GOTO 345
353 OPEN 4,4,7:REM MPS-801 GGF.AENDERN
354 POKE768,61:PRINT#4,:CLOSE4:POKE 768,139
355 IF ST<>-128 THEN 359
356 X=5:Y=20:GOSUB675:PRINT"[196][210][213][195][203][197][210][160][206][201][195][200][212][160][193][206][199][197][211][195][200][193][204][212][197][212][160]!-[212]ASTE "
357 FORT=0 TO 255:POKE 53280,T:NEXT:GET A$:IF A$="" THEN 357
358 GOTO 353
359 OPEN 4,4,7:GOSUB 675:PRINT" "
360 FOR OUT =0 TO 31
361 :PRINT#4,"[";
362 :IF MO$="D" THEN PRINT#4,RIGHT$(STR$(OUT*8+1000),3);"] :";
363 :IF MO$="H" THEN BY=OUT*8:GOSUB 35000:PRINT#4,HI$;"] ";
365 :FOR YB =0 TO 7
369 ::IF MO$="H" THEN BY=PEEK(49664+OUT*8+YB):GOSUB 35000:PRINT#4,HI$;
370 ::IF MO$="D" THEN PRINT#4,RIGHT$(STR$(PEEK(49664+OUT*8+YB)+1000),3);
371 :PRINT#4," ";
375 :NEXT YB
380 :SYS 49259,49664+OUT*8,8,PR$
385 :PRINT#4,PR$
390 NEXT OUT
395 PRINT#4:PRINT#4,"[199][196][205] [199]EOS [196]ISK [205]ONITOR VON [212].[208]ETROWSKI ([195]) 64'ER":PRINT#4
400 CLOSE 4:POKE 53269,1:RETURN
405 :
410 REM --- DISK-STATUS ---
415 INPUT#15,EN,ER$,ET,ES:POKE 212,0
420 X=6:Y=24:GOSUB 675:PRINT" ";
425 X=6:Y=24:GOSUB 675:POKE 212,0
430 PRINT"[196]ISK :";ER$;""
435 RETURN
440 :
445 REM --- STRICH ---
450 PRINT"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]";:RETURN
455 :
460 REM --- DIRECTORY ---
465 CLOSE 1:OPEN 1,8,0,"$0":POKE 53269,0
470 GET#1,A$,A$:D=0:POKE 198,0
475 D=D+1:IF D=2 THEN PRINT:GOSUB 445
480 PRINT:PRINT" ";:IF (ST AND 64)=64 THEN GOTO 500
485 IF PEEK(198)=0 THEN 495
490 POKE 198,0:WAIT 198,1:POKE 198,0
495 SYS 49215:GOTO 475
500 PRINT" --- [212]ASTE DRUECKEN ---":POKE 198,0:WAIT 198,1
505 POKE 53269,1:RETURN
510 :
515 REM --- SPUR/SEKTOR EINGABE ---
520 X=11:Y=9:GOSUB 675:IN=T:GOSUB 700:T=IN
535 X=27:Y=9:GOSUB 675:IN=S:GOSUB 700:S=IN
545 RETURN
550 :
555 REM --- BLOCK LESEN ---
560 POKE 53269,0:PRINT#15,"U1: 2 0 "T;S
565 SYS 49152:NR=0:POKE 53269,1:RETURN
570 :
575 REM --- ANZEIGEN ---
580 X=0:Y=11:GOSUB 675:SYS 49177:POKE 53280,0:RETURN
585 :
590 REM --- LESEN ---
595 GOSUB 515:GOSUB 555:GOSUB 410:GOSUB 575:RETURN
600 :
605 REM --- WERT AUSGEBEN ---
610 X=5:Y=19:GOSUB675:PRINTRIGHT$(STR$(NR+1000),3);
614 POKE 211,14:PRINTRIGHT$(STR$(PEEK(49664+NR)+1000),3);
615 POKE 211,23:PRINTMID$(HEX$,(((PEEK(49664+NR) AND 240)+16)/16)+1,1);
616 PRINTMID$(HEX$,(PEEK(49664+NR)AND 15)+2,1);
617 SYS 49446,NR:POKE 211,31:SYS 49407,PEEK(49664+NR)
620 RETURN
625 :
630 REM --- BYTE EDIT ---
635 GOSUB 605:X=18:Y=22:GOSUB 675:PRINT"[206]EUER [215]ERT:";
636 OPEN 3,0,0:INPUT#3,BY$:CLOSE 3
637 MO$=LEFT$(BY$,1)
638 IF MO$<>"$" THEN 641
639 IN$=MID$(BY$,2):GOSUB41000
640 BY=IN:GOTO 649
641 IF MO$<>"%" THEN 645
642 BY=0:FOR BI=0 TO 7
643 IF MID$(BY$,9-BI,1)="1" THEN BY=BY+2^BI
644 NEXT BI:GOTO 649
645 IU=1:IF MO$="#" THEN IU=2
646 BY=VAL(MID$(BY$,IU,3))
649 POKE 49664+NR,BY:GOSUB 575:RETURN
650 REM --- SCHREIBEN ---
655 GOSUB 515:PRINT#15,"B-P 2 0":SYS 49193
660 PRINT#15,"U2: 2 0 ";T;S
665 GOSUB 410:RETURN
670 :
675 REM --- CURSOR SETZEN ---
680 POKE 211,X:POKE 214,Y:SYS 58732:RETURN
690 :
700 REM --- EINGABE (AUCH HEX)
701 IN$=RIGHT$(STR$(IN+1000),2):GOSUB 800
715 IF LEFT$(IN$,1)="$" THEN IN$=RIGHT$(IN$,2):GOSUB 41000:RETURN
716 IN=VAL(IN$)
720 RETURN
800 PRINT IN$;
801 PRINT" [146][157]";
805 GET A$:IF A$="" THEN 805
810 LL=LEN(IN$):IFA$=CHR$(20) ANDLL>0 THENIN$=LEFT$(IN$,LL-1):PRINT"[157] [157][157]";
811 IF A$=CHR$(20) THEN 801
812 IF A$=CHR$(13) THEN PRINT" ";:RETURN
815 IF(A$>="0"ANDA$<="9")OR(A$>="A"ANDA$<="F")OR(A$>="[193]"ANDA$<="[198]")THEN 825
816 IF A$="$" THEN 825
820 GOTO 805
825 IF LEN(IN$)<3 THEN IN$=IN$+A$:PRINT A$;:GOTO 801
830 GOTO 805
1000 REM --- HEX EDIT ---
1005 EB=0
1010 X=0:Y=12:GOSUB 675
1011 PRINT" [206]R +0 +1 +2 +3 +4 +5 +6 +7 [193][211][195][201][201] ";
1012 GOSUB 445:PRINT" ";:GOSUB 445
1013 PRINT" + [214]ORW. - [218]UR. [210][197][212][213][210][206][160][197]INGEBEN Q [197]NDE"
1030 X=0:Y=14:GOSUB 675:PRINT"[";:BY=EB:GOSUB 35000:PRINT HI$;"] ";
1035 FORT=0 TO 7:BY=PEEK(49664+EB+T):GOSUB 35000:PRINT HI$" ";:NEXT T
1036 FORT=0 TO 7:PRINTCHR$(PEEK(PEEK(4966